Zmena znaku ve stringu

Otázka od: Rumcajs - konference

14. 10. 2002 7:19

Servus ve spolek,
je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
ReplaceStr(',', '.', Retezec);
Rumcajs


---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.401 / Virová báze: 226 - datum vydání: 9.10.2002

Odpovedá: Jiri Betunak

18. 10. 2002 19:22

Ahoj,
co takhle

procedure ReplaceString (var s: string; OldString, NewString: string);
var Temp : string;
    i : integer;
begin
  i := 1;
  Temp := '';
  while i <> Length (s) + 1 do
  begin
    if Copy (s, i, Length (OldString)) = OldString then
    begin
      Temp := Temp + NewString;
      Inc (i, Length (OldString));
    end
    else
    begin
      Temp := Temp + s [i];
      Inc (i);
    end;
  end;
  s := Temp;
end;



>> Servus ve spolek,
>> je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
>> ReplaceStr(',', '.', Retezec); Rumcajs

LD> StringReplace, dale viz help.

LD> David Lebeda




--
S pozdravem
 Jiri Betunak mailto:kindrik@centrum.cz

Odpovedá: ing. Jan Fiala

14. 10. 2002 10:28

Neni, ale neni problem si ji napsat

procedure ZamenZnak(var s: string; const co, cim: char);
var
  i: integer;
begin
  for i := 1 to length(s) do
    if s[i] = co then
      s[i] := cim;
end;

popr. by to slo jeste zoptimalizovat pomoci PChar, ale myslim, ze
rychlost bude dostatecna.

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

14.10.2002 Rumcajs - konference:
> Servus ve spolek,
> je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
> ReplaceStr(',', '.', Retezec);
> Rumcajs

Odpovedá: Lebeda David

14. 10. 2002 9:04

> Servus ve spolek,
> je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
> ReplaceStr(',', '.', Retezec); Rumcajs

StringReplace, dale viz help.

David Lebeda

Odpovedá: Lukas Gebauer

14. 10. 2002 7:34

??? Od Delphi 4 prece existuje funkce StringReplace...

> Neni, ale neni problem si ji napsat
> > je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
> > ReplaceStr(',', '.', Retezec); Rumcajs



-- Lukas Gebauer.

E-mail: gebauerl@mlp.cz
http://www.ararat.cz/synapse/ - Synapse Delphi and Kylix TCP/IP Lib.

Odpovedá: Ing. Pavel Žilinec

14. 10. 2002 7:39

function StringReplace(const S, OldPattern, NewPattern: string; Flags:
TReplaceFlags): string;

--------
ing. Pavel Zilinec
MailTo:zilinec@email.cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju

Rk> Servus ve spolek,
Rk> je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
Rk> ReplaceStr(',', '.', Retezec);
Rk> Rumcajs

Odpovedá: Pavel Malinsky

14. 10. 2002 10:49

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Lukas Gebauer
> Sent: Monday, October 14, 2002 8:30 AM
> To: delphi-l@clexpert.cz
> Subject: Re: Zmena znaku ve stringu
>
>
> ??? Od Delphi 4 prece existuje funkce StringReplace...

  Nebo v JCL CharReplace()...

PM

>
> > Neni, ale neni problem si ji napsat
> > > je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
> > > ReplaceStr(',', '.', Retezec); Rumcajs

Odpovedá: ing. Jan Fiala

14. 10. 2002 9:37

14.10.2002 Lukas Gebauer:
>> > je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
>> > ReplaceStr(',', '.', Retezec); Rumcajs

> ??? Od Delphi 4 prece existuje funkce StringReplace...

Ano, ale ta je delana na zmenu retezce za retezec, ne znaku za znak.
Dovolil bych si tvrdit, ze ten for cyklu bude rychlejsi.

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

Odpovedá: Rumcajs - konference

14. 10. 2002 9:48

Bohuzel, ale help mi tuhle funkci neukazuje ... - D6Prof
Rumcajs

> > Servus ve spolek,
> > je v Delphi nejaka fce pro zmenu jednoho znaku ve stringu? Neco jako
> > ReplaceStr(',', '.', Retezec); Rumcajs
>
> StringReplace, dale viz help.
>
> David Lebeda
>
>


---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.401 / Virová báze: 226 - datum vydání: 9.10.2002

Odpovedá: Petr Vones

19. 10. 2002 12:01

From: "Jiri Betunak" <kindrik@centrum.cz>
> co takhle

To je znacne neefektivni implementace, zvlaste pokud jde o nahrazeni znaku a
ne retezce (o vice znacich) ve stringu. Podivej se treba na funkci CharReplace
v unitu JclStrings z JCL.

Petr Vones